//program 2.4 会议安排问题
//https://www.luogu.com.cn/problem/P1803
#include <iostream>
#include <algorithm>

using namespace std;
struct node {
    int s,e;    // 开始时间，结束时间
}a[1000010];

bool cmp(node x, node y) {
    if(x.e == y.e) return x.s > y.s;    // 如果结束时间相等，按开始时间从大到小排序
    return x.e < y.e;   // 按结束时间从小到大
}

int main() {
    int n, cnt = 1; // n表示会议个数
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> a[i].s >> a[i].e;
    sort(a+1,a+n+1, cmp);   // 排序，下标从1开始
    // 选中第1个会议
    int last = a[1].e;  // 记录最新选中的会议结束时间
    for(int i = 2; i <= n; i++) {
        if(a[i].s >= last) {
            cnt++;
            last = a[i].e;  // 更新last
        }
    }
    cout << cnt << endl;
    return 0;
}
